package com.whu.exam.modules.paper.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.whu.exam.core.annon.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;


@Data
@TableName("el_paper")
public class Paper extends Model<Paper> {

    private static final long serialVersionUID = 1L;

    /**
     * 试卷ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "试卷ID", required=true)
    private String id;

    /**
     * 用户ID
     */
    @Dict(dictTable = "sys_user", dicText = "real_name", dicCode = "id")
    @ApiModelProperty(value = "用户ID", required=true)
    @TableField("user_id")
    private String userId;

    /**
     * 部门ID
     */
    @Dict(dictTable = "sys_classno", dicText = "dept_name", dicCode = "id")
    @ApiModelProperty(value = "部门ID", required=true)
    @TableField("classno_id")
    private String classnoId;

    /**
     * 规则ID
     */
    @ApiModelProperty(value = "规则ID", required=true)
    @TableField("exam_id")
    private String examId;

    /**
     * 考试标题
     */
    @ApiModelProperty(value = "考试标题", required=true)
    private String title;

    /**
     * 考试时长
     */
    @ApiModelProperty(value = "考试时长", required=true)
    @TableField("total_time")
    private Integer totalTime;

    /**
     * 用户时长
     */
    @ApiModelProperty(value = "用户时长", required=true)
    @TableField("user_time")
    private Integer userTime;

    /**
     * 试卷总分
     */
    @ApiModelProperty(value = "试卷总分", required=true)
    @TableField("total_score")
    private Integer totalScore;

    /**
     * 及格分
     */
    @ApiModelProperty(value = "及格分", required=true)
    @TableField("qualify_score")
    private Integer qualifyScore;

    /**
     * 客观分
     */
    @ApiModelProperty(value = "客观分", required=true)
    @TableField("obj_score")
    private Integer objScore;

    /**
     * 主观分
     */
    @ApiModelProperty(value = "主观分", required=true)
    @TableField("subj_score")
    private Integer subjScore;

    /**
     * 用户得分
     */
    @ApiModelProperty(value = "用户得分", required=true)
    @TableField("user_score")
    private Integer userScore;

    /**
     * 是否包含简答题
     */
    @ApiModelProperty(value = "是否包含简答题", required=true)
    @TableField("has_saq")
    private Boolean hasSaq;

    /**
     * 试卷状态
     */
    @ApiModelProperty(value = "试卷状态", required=true)
    private Integer state;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", required=true)
    @TableField("create_time")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间", required=true)
    @TableField("update_time")
    private Date updateTime;

    /**
     * 截止时间
     */
    @ApiModelProperty(value = "截止时间")
    @TableField("limit_time")
    private Date limitTime;
}
